package com.jiang.专题.数组.Q274;

/**
 * @author Jiang
 * @version 1.0
 * @date 2024/12/19 17:51
 */
class Solution {
    // 排序
    // public int hIndex(int[] citations) {
    //     Arrays.sort(citations);
    //     int h = 0;
    //     int i = citations.length - 1;
    //     while (i >= 0 && h < citations[i]) {
    //         h++;
    //         i--;
    //     }
    //     return h;
    // }

    // 计数
    public int hIndex(int[] citations) {
        int len = citations.length;
        int[] nums = new int[len + 1];
        for (int i = 0; i < len; i++) {
            if (citations[i] >= len) {
                nums[len]++;
            } else {
                nums[citations[i]]++;
            }
        }
        int h = 0;
        for (int i = len ; i >= 0; i--) {
            h += nums[i];
            if (h >= i) {
                return i;
            }
        }
        return 0;
    }
}
